package com.atguigu.srb.oss.controller;

import com.atguigu.srb.common.result.R;
import com.atguigu.srb.oss.service.OssService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

/**
 * @Description:
 * @Author: Gavin
 * @Date: 7/6/2023 7:41 PM
 */
@RestController
@RequestMapping("/api/oss")
@Api(tags = "oss文件管理模块")
public class OssController {
    @Autowired
    OssService ossService;

    // requestParam方式传文件的方法
    @PostMapping("/upload")
    @ApiOperation("文件上传requestParam的方式")
    public R upload(MultipartFile file,
                    @RequestParam("module") String module) {
        // file指的是需要上传的文件的对象
        // module指的是模块的名称,也就是bucket里面保存文件的目录名
        String path = ossService.upload(file, module);
        // 将上传成功后的文件的路径返回给前端,用来做回显
        return R.ok().data("path", path);
    }

    // 删除文件的方法
    @ApiOperation("删除文件")
    @DeleteMapping
    public R deleteFile(@RequestParam("path") String path) {
        ossService.deleteByPath(path);
        return R.ok();
    }
}
